| 
                
               | 
              
                
               | 
              
                @@ -9,9 +9,12 @@ from django_response import response 
               | 
            
            
            
              | 
                9
               | 
              
                9
               | 
              
                 from paginator import pagination 
               | 
            
            
            
              | 
                10
               | 
              
                10
               | 
              
                 from TimeConvert import TimeConvert as tc 
               | 
            
            
            
              | 
                11
               | 
              
                11
               | 
              
                 from django.db.models import Sum 
               | 
            
            
            
              | 
                
               | 
              
                12
               | 
              
                +from datetime import datetime 
               | 
            
            
            
              | 
                12
               | 
              
                13
               | 
              
                  
               | 
            
            
            
              | 
                13
               | 
              
                
               | 
              
                -from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, SaleclerkInfo 
               | 
            
            
            
              | 
                
               | 
              
                14
               | 
              
                +from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, SaleclerkInfo, ModelInfo 
               | 
            
            
            
              | 
                14
               | 
              
                15
               | 
              
                 from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo, ModelSaleStatisticInfo 
               | 
            
            
            
              | 
                
               | 
              
                16
               | 
              
                +from integral.models import SaleclerkSubmitLogInfo 
               | 
            
            
            
              | 
                
               | 
              
                17
               | 
              
                +from logs.models import MchInfoEncryptLogInfo 
               | 
            
            
            
              | 
                15
               | 
              
                18
               | 
              
                 from account.models import UserInfo 
               | 
            
            
            
              | 
                16
               | 
              
                19
               | 
              
                 from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode, 
               | 
            
            
            
              | 
                17
               | 
              
                20
               | 
              
                                                      ProductMachineStatusCode, UserStatusCode) 
               | 
            
            
            
            
            
              | 
                
               | 
              
                
               | 
              
                @@ -356,3 +359,45 @@ def statistic_distributor(request): 
               | 
            
            
            
              | 
                356
               | 
              
                359
               | 
              
                         'model_logs': model_logs, 
               | 
            
            
            
              | 
                357
               | 
              
                360
               | 
              
                         'distributor_logs': distributor_logs 
               | 
            
            
            
              | 
                358
               | 
              
                361
               | 
              
                     }) 
               | 
            
            
            
              | 
                
               | 
              
                362
               | 
              
                + 
               | 
            
            
            
              | 
                
               | 
              
                363
               | 
              
                +def statistic_deep_analyze(request): 
               | 
            
            
            
              | 
                
               | 
              
                364
               | 
              
                +    start_time = request.POST.get('start_time', '')
               | 
            
            
            
              | 
                
               | 
              
                365
               | 
              
                +    end_time = request.POST.get('end_time', '')
               | 
            
            
            
              | 
                
               | 
              
                366
               | 
              
                + 
               | 
            
            
            
              | 
                
               | 
              
                367
               | 
              
                +    start_date = datetime.strptime(start_time + ' 00:00:00', '%Y-%m-%d %H:%M:%S') 
               | 
            
            
            
              | 
                
               | 
              
                368
               | 
              
                +    end_date = datetime.strptime(end_time + ' 23:59:59', '%Y-%m-%d %H:%M:%S') 
               | 
            
            
            
              | 
                
               | 
              
                369
               | 
              
                +    logs = ConsumeInfoSubmitLogInfo.objects.filter(created_at__range=(start_date, end_date), dupload=False, test_user=False) 
               | 
            
            
            
              | 
                
               | 
              
                370
               | 
              
                +    res = [] 
               | 
            
            
            
              | 
                
               | 
              
                371
               | 
              
                + 
               | 
            
            
            
              | 
                
               | 
              
                372
               | 
              
                +    for log in logs: 
               | 
            
            
            
              | 
                
               | 
              
                373
               | 
              
                +        modelInfo = ModelInfo.objects.get(model_id=log.model_id) 
               | 
            
            
            
              | 
                
               | 
              
                374
               | 
              
                +        item = {'user_id': log.user_id, 'model_name': log.model_name, 'serialNo': log.serialNo}
               | 
            
            
            
              | 
                
               | 
              
                375
               | 
              
                +        try: 
               | 
            
            
            
              | 
                
               | 
              
                376
               | 
              
                +            sale_log = SaleclerkSubmitLogInfo.objects.get(model_name=modelInfo.model_name, code=log.serialNo) 
               | 
            
            
            
              | 
                
               | 
              
                377
               | 
              
                +            item['distributor_name'] = sale_log.distributor_name 
               | 
            
            
            
              | 
                
               | 
              
                378
               | 
              
                +            item['outbound_time'] = sale_log.created_at 
               | 
            
            
            
              | 
                
               | 
              
                379
               | 
              
                +        except: 
               | 
            
            
            
              | 
                
               | 
              
                380
               | 
              
                +            item['distributor_name'] = '' 
               | 
            
            
            
              | 
                
               | 
              
                381
               | 
              
                +            item['outbound_time'] = '' 
               | 
            
            
            
              | 
                
               | 
              
                382
               | 
              
                + 
               | 
            
            
            
              | 
                
               | 
              
                383
               | 
              
                +         
               | 
            
            
            
              | 
                
               | 
              
                384
               | 
              
                +        date = datetime.strptime('2020-01-14 00:00:00', '%Y-%m-%d %H:%M:%S')
               | 
            
            
            
              | 
                
               | 
              
                385
               | 
              
                +        encryptLog = MchInfoEncryptLogInfo.objects.filter(created_at__gte=date, sn=log.serialNo, model_pk=modelInfo.pk) 
               | 
            
            
            
              | 
                
               | 
              
                386
               | 
              
                +        if not encryptLog: 
               | 
            
            
            
              | 
                
               | 
              
                387
               | 
              
                +            item['is_new_code'] = False 
               | 
            
            
            
              | 
                
               | 
              
                388
               | 
              
                +            item['is_complement'] = False 
               | 
            
            
            
              | 
                
               | 
              
                389
               | 
              
                +        elif encryptLog.all()[0].operator_id == 'ZCQebtBiQHT8XRKpmbUotD': 
               | 
            
            
            
              | 
                
               | 
              
                390
               | 
              
                +            item['is_complement'] = True 
               | 
            
            
            
              | 
                
               | 
              
                391
               | 
              
                +            item['is_new_code'] = False 
               | 
            
            
            
              | 
                
               | 
              
                392
               | 
              
                +        elif encryptLog.all()[0].operator_id == '5qX3KWXZ8iKaip4AdxwtKF': 
               | 
            
            
            
              | 
                
               | 
              
                393
               | 
              
                +            item['is_new_code'] = True     
               | 
            
            
            
              | 
                
               | 
              
                394
               | 
              
                +            item['is_complement'] = False 
               | 
            
            
            
              | 
                
               | 
              
                395
               | 
              
                + 
               | 
            
            
            
              | 
                
               | 
              
                396
               | 
              
                +        if encryptLog: 
               | 
            
            
            
              | 
                
               | 
              
                397
               | 
              
                +            item['outbound_time'] = encryptLog.all()[0].created_at  
               | 
            
            
            
              | 
                
               | 
              
                398
               | 
              
                +        else: 
               | 
            
            
            
              | 
                
               | 
              
                399
               | 
              
                +            item['outbound_time'] = '' 
               | 
            
            
            
              | 
                
               | 
              
                400
               | 
              
                + 
               | 
            
            
            
              | 
                
               | 
              
                401
               | 
              
                +        res.append(item) 
               | 
            
            
            
              | 
                
               | 
              
                402
               | 
              
                + 
               | 
            
            
            
              | 
                
               | 
              
                403
               | 
              
                +    return response(data=res) 
               |